

module('backorfore',package.seeall)
require 'localnotation' 
--游戏进入前后台后的推送
local m_notfunarr = {};
--进入后台以及回到游戏的回调队列
--添加前后台切换监听
function regNotiFun(fun,node)
  for key,value in pairs(m_notfunarr) do 
    if value == fun then 
      return;
    end
  end
  table.insert(m_notfunarr,fun);
  local function eventfun(event)
	if event == 'exit' or event == 'cleanup' then 
		unRegNotiFun(fun)
	end
  end
  regNodeEvent(node,eventfun);
end

--移除前后台切换监听
function unRegNotiFun(fun)
  local i=1;
  for key,value in pairs(m_notfunarr) do 
    if value == fun then 
      table.remove(m_notfunarr,i);
      break;
    end
    i=i+1;
  end
end 



function start()
	local canstart=false;--因为游戏启动就调用进入前端的通知了，很神奇
	--进入后台或回到游戏的通知
	local function bfcallback(etype)
		if not canstart then 
			canstart=true
			if etype==1 then 
				return
			end
		end
		--先分发此事件到所有已注册的对象
		for key,value in pairs(m_notfunarr) do
			value(etype);
		end
		if 0 == etype then  
			print("游戏切换到后台了") 
			localnotation.addLocalNotation()--如果是进入后台，就添加本地推送  
		elseif 1 == etype then
			--并且需要检测版本号  
            print("游戏切换到前台了了") 
			localnotation.removeLocalNotation();--如果回到游戏了，就撤销所有推送      
		end 
    end
    --注册前后台切换事件
    c_backOrFore(bfcallback);
end


